package emp.jsf.servicio.impl;

import java.util.Date;
import java.util.List;
import java.util.Random;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.sun.org.apache.xerces.internal.impl.xpath.regex.Match;

import emp.entidades.EntInterfaz;
import emp.entidades.EntUsuario;
import emp.entidades.EntVenta; 
import emp.jsf.servicio.UsuarioService;
import emp.jsf.servicio.VentaService;
import emp.repositorios.InterfazRepository;
import emp.repositorios.UsuarioRepository;
import emp.repositorios.VentaRepository;

@Service("usuarioService")
public class UsuarioServiceImpl  implements UsuarioService {
	
	@Autowired
	UsuarioRepository usuarioRepository;

	@Autowired
	InterfazRepository interfazRepository;
 
	public EntUsuario obtenerUsuarioValidado(String usu,String pass){
		 return usuarioRepository.obtenerUsuarioValidado(usu,pass);
	}
	
	public EntUsuario obtenerUsuarioPorCodigo(String usu){
		 return usuarioRepository.obtenerUsuarioPorCodigo(usu);
	}
	
	public List<EntUsuario> listarUsuarios(){
		 return usuarioRepository.buscarUsuarios();
	}

	
	public void eliminar(String id){
		 usuarioRepository.delete(Long.valueOf(id));
	}
	
	public EntUsuario crear(EntUsuario ent){
		ent.setEstado(1); 
		generarClave(ent);
		 return usuarioRepository.save(ent);
	}
	
	
	public void actualizarContrase(Long id,String clave){
		 usuarioRepository.actualizarContrase(id,clave);
	}
	
	
	public EntUsuario modificar(EntUsuario ent){  
		 return usuarioRepository.save(ent);
	}
	
	public void generarClave(EntUsuario ent){
		Random random = new Random(); 
		int clave = random.nextInt(90000)+10000; //siempre 5 digitos
		ent.setPassword(clave+"");
	}
	
	@Override
	public List<EntInterfaz> cargarInterfazes(EntUsuario entUsuario) { 
		return interfazRepository.cargarInterfazes(entUsuario.getId());
	}
	
	 

}
